package exception02;

import java.sql.SQLOutput;

/*
throws关键字
   当方法中抛出异常对象，我们为了让调用者知晓这个方法可能又异常抛出
   需要在方法上通过throws关键字声明异常类
   格式：
      修饰符 返回值类型 方法名(形参列表) throws 异常类名1，异常类名2，....{

      }
 */
public class ExceptionDemo03 {
    public static void main(String[] args) throws Exception{//main方法这里的throws异常声明是给jvm看的
                                                            //
       /* int totalPrice = getTotalPrice(3, 20);
        System.out.println(totalPrice);*/

     /*   int totalPrice2 = getTotalPrice(-2, 30);
        System.out.println(totalPrice2);//-60*/

        int totalPrice3 = getTotalPrice(2, -30);
        System.out.println(totalPrice3);

    }

    /**文档注释
     *
     * @param price  单价
     * @param amount  数量
     * @return    返回总价
     */
    public static int getTotalPrice(int price, int amount) throws Exception{//这个异常申明是给调用getPrice()方法的调用者看的
                                                                            //当他看到这个异常声明就知道需要处理
        if (price < 0) {
            throw new Exception("价格不能为负值"+price);
        }

        if (amount < 0) {
            throw new Exception("数量不能为负值" + amount);
        }
        return price * amount;
    }
}
